/*!
 *file name : i2c_lib.h
 *author :hu
 *
 *description:模拟I2C模块
 */
#ifndef MY_I2C_H_
#define MY_I2C_H_

#include "xxx.h"

//定义struct I2C_Operation类型
typedef struct I2C_Operation
{  
    /*模拟I2C相关驱动功能函数 */
    void (*configFun)(void);//配置IIC引脚，一般设置为开漏，外部上拉
	void (*setSCL)(UINT8 level);//设置SCL
    void (*setSDA)(UINT8 level);//设置SDA
    void (*setDir)(UINT8 dir);//设置SDA方向
    UINT8 (*getSDALevel)(void);//读取SDA电平
	void (*delay)(UINT16 time);//设置延时时间
	//void (*timeTest)(struct IIC_Operation *,UINT16 time);//测试delay时间	
    
	/*初始化结构体*/
    void (*runInit)(struct I2C_Operation *);
}I2COperation;


/*!
 *
 *说明:起始位
 *参数：
 *
 */
void i2cStart(I2COperation *cfg);

/*!
 *
 *说明:停止位
 *参数：
 *
 */
void i2cStop(I2COperation *cfg);

/*!
 *
 *说明：发送一个字节
 *参数：byteData:待发送的字节
 *返回值：0有应答 1无应答
 */
UINT8 i2cSendByte(I2COperation *cfg,UINT8 byteData);

/*!
 *
 *说明：读取一个字节
 *参数：ackNack：0应答 1不应答
 *返回值：读取到的字节
 */
UINT8 i2cReceiveByte(I2COperation *cfg,UINT8 ackBit);

#endif